跳到主要内容
版本:V14

销售周期集成

使用REST API集成外部订单管理系统和销售周期的标准白名单方法和流程

1. 销售订单

Frappe框架默认为所有DocTypes生成REST API。可以使用这种方法创建销售周期的第一个文档。如果您从销售订单开始,可以使用标准的REST API POST请求来生成订单。下面是一个示例,您可以根据需要在body中包含自定义字段和其他doctype详细信息。

POST /api/resource/Sales Order

# Body
{
"doctype": "Sales Order",
"customer": "Test Customer",
"company_address": "Test - Billing",
"customer_address": "Test-Billing-3",
"items": [{
"item_code": "Mobile Display",
"qty": 10,
"rate": 2000,
"delivery_date": "2022-11-06",
"delivery_warehouse": "Stores - GTPL"
}]
}

2. 送货单

如果您从送货单开始,请使用上面显示的与销售订单相同的方法,只需将doctype键值替换为Delivery Note而不是Sales Order。如果要从销售订单制作送货单,请使用下面的端点。这里的source_name参数是销售订单ID。

POST /api/method/erpnext.selling.doctype.sales_order.sales_order.make_delivery_note

# Body
{"source_name": "SO-2022-00001"}

该端点返回一个送货单JSON对象作为响应,其中包含订单中待交付的所有物品。

3. 销售发票

同样,如果只是制作销售发票,最好使用标准的REST API。有关此,请参考销售订单部分中提到的示例。

要从销售订单制作销售发票,请使用下面提到的端点。这里的source_name参数是销售订单ID。

POST /api/method/erpnext.selling.doctype.sales_order.sales_order.make_sales_invoice

# Body
{"source_name": "SO-2022-00001"}

要从送货单制作销售发票,请使用下面提到的端点。这里的source_name参数是送货单ID。

POST /api/method/erpnext.stock.doctype.delivery_note.delivery_note.make_sales_invoice

# Body
{"source_name": "SO-2022-00001"}

这两个端点返回一个销售发票JSON对象,其中包含待开票的所有物品。

4. 对订单或发票的付款

要针对销售订单或发票生成付款凭证,请使用下面的端点

POST /api/method/erpnext.accounts.doctype.payment_entry.payment_entry.get_payment_entry

# Body
{
"dt": "Sales Invoice",
"dn": "SI-2022-0001",
"party_amount": 2000, # 如果文档没有`outstanding_amount`字段,则传递(可选参数)
"bank_account": "Bank Name - CAB", # 如果要使用默认以外的银行账户,则传递(可选参数)
"bank_amount": 2000, # 根据付款凭证类型支付或收到的金额(可选参数)
"party_type": "Customer", # 如果付款凭证是针对除客户或供应商以外的其他方类型(可选参数)
"payment_type": "Pay", # 付款或收款(可选参数)

}